package DAOs;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;












import classes.Aparelhos;

public class DAOAparelhos extends DAODefault{
	
	public void createAparelhos(Aparelhos aparelhos){
		
		String sql = "INSERT INTO aparelhos"+
					  "(username, marca, modelo, tipo) "
				+"VALUES(?,?,?,?)";
		
		try {
			stmt = conn.prepareStatement(sql);
			
			stmt.setString(1, aparelhos.getUsername());
			stmt.setString(2, aparelhos.getMarca());
			stmt.setString(3, aparelhos.getModelo());
			stmt.setString(4, aparelhos.getTipo());
			
			stmt.execute();
			
			stmt.close();
			
		} catch (SQLException e) {
			
			throw new RuntimeException(e);
		}
	}
	
	public ArrayList<Aparelhos> readAparelhos(){
		ArrayList<Aparelhos> aparelhos = new ArrayList<>();
		String sql = "SELECT * FROM Aparelhos";
		
		try {
			stmt = conn.prepareStatement(sql);
			ResultSet rs = stmt.executeQuery();
			while(rs.next()){
				Aparelhos aparelho = new Aparelhos();
				aparelho.setIdAparelho((rs.getInt("idAparelho")));
				aparelho.setMarca((rs.getString("marca")));
				aparelho.setModelo((rs.getString("modelo")));
				aparelho.setTipo((rs.getString("tipo")));
				aparelho.setUsername(rs.getString("username"));
			}
			return aparelhos;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
		
	}

	public ArrayList<Aparelhos> searchAparelhos(String escolha,String dado){
		
		try{
			ArrayList<Aparelhos> aparelhos = new ArrayList<>();

		
		String sql = "SELECT * FROM Aparelhos WHERE ? = ?";
		
		
			stmt = conn.prepareStatement(sql);
			

			stmt.setString(1, escolha);
			stmt.setString(2, dado);
			
		
			
			ResultSet rs = stmt.executeQuery();
			
			while(rs.next()){
				
				Aparelhos aparelhos2 = new Aparelhos();
				
				aparelhos2.setIdAparelho((rs.getInt("idAparelho")));
				aparelhos2.setMarca((rs.getString("marca")));
				aparelhos2.setModelo((rs.getString("modelo")));
				aparelhos2.setTipo((rs.getString("tipo")));
				aparelhos2.setUsername(rs.getString("username"));
				
				aparelhos.add(aparelhos2);
			}
			
			return aparelhos;
		}
		catch (SQLException e){
			throw new RuntimeException(e);
		}
	}

	public void deleteAparelhos(Aparelhos aparelhos){
		try{
			String sql = "DELETE FROM aparelhos WHERE idAparelhos=?";
			
			stmt = conn.prepareStatement(sql);
			stmt.setInt(1, aparelhos.getIdAparelho());
			stmt.execute();
			stmt.close();
		}
		catch (SQLException e){
			throw new RuntimeException(e);
		}
	}

	public void updateAparelhos(Aparelhos aparelhos){
		
		String sql = "UPDATE aparelhos SET " + 
				"username = ?, marca = ? , modelo = ?, tipo = ? "+
				"where idAparelhos = ?"; 

					  
		
		try {
			stmt = conn.prepareStatement(sql);
			
			stmt.setString(1, aparelhos.getUsername());
			stmt.setString(2, aparelhos.getMarca());
			stmt.setString(3, aparelhos.getModelo());
			stmt.setString(4, aparelhos.getTipo());
			stmt.setInt(5, aparelhos.getIdAparelho());
			
			stmt.execute();

			stmt.close();

			
			
		} catch (SQLException e){
			throw new RuntimeException(e);

		}
		
	}
	

}
